<?php
namespace Admin\Controller;
use Think\Controller;
require_once ROOT . "/Common/ColoudSearch/CloudsearchClient.php";
require_once ROOT . "/Common/ColoudSearch/CloudsearchIndex.php";
require_once ROOT . "/Common/ColoudSearch/CloudsearchDoc.php";

class OpenSearchController extends CommonController {
	/**
	 * 首页
	 * @internal 开放搜索首页
	 * @access public
	 * @since 2014-10-18 22:32:04
	 * @author FrankKung <kfanjian@gmail.com>
	 */
	public function index() {
		// 模型
		$Hash	= D("Hash");
		
		//C ( 'SHOW_RUN_TIME', false ); // 运行时间显示
		//C ( 'SHOW_PAGE_TRACE', false );
		$this->display ();
	}

	/**
	 * 增加索引文档
	 * @internal 增加索引文档
	 * @access public
	 * @since 2014-10-18 23:34:46
	 * @author FrankKung <kfanjian@gmail.com>
	 */
	public function addDoc() {
		// 模型
		$Hash = D("Hash");

		// 开放搜索客户端
		$client = new \CloudsearchClient(
			C('CS.ACCESSKEYID'), 
			C('CS.SECRET'), 
			array('host' => C('CS.HOST')),
			C('CS.KEY_TYPE')
		);
		// $app = new \CloudsearchIndex(C('CS.APP_NAME'), $client);

		// 查看当前应用的状态
		// echo $app->status();

		// 获取当前应用的所有错误信息。
		// echo $app->getErrorMessage();

		// 获取所有的应用信息
		// echo $app->listIndexes();

		// 文档
		$doc = new \CloudsearchDoc(C('CS.APP_NAME'), $client);

		// 或$doc->update($json), $doc->remove($json)
		// 注意，参数1可以为一个json的string或者为一个数组，
		// 结构为：
		// [{fields:{fieldname1: fieldvalue1, fieldname2: fieldvalue2, ...}, cmd: ADD|DELETE|UPDATE},...]
		// 参数2为您创建要push数据的表名。
		// 如果需要多表的数据push，请先push附表的数据，然后在push主表的数据。
		$page = I('get.page',1);
		$ret = $Hash->field('id,hash,title,file,keywords,fileSize,fileNumber,time,pageRank,isBad')->page($page, 20)->select();
		//var_dump($ret);
		foreach ($ret as $v) {
			$data[] = array(
				'fields'	=> $v,
				'cmd'		=> 'ADD',
			);
		}
		echo $doc->add($data, 'main');

	}
}
